From 70a47391ce9a0eb7ce9844b6eac41994705dbe50 Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Mon, 26 Mar 2007 15:09:24 +0100 Subject: [PATCH] Add option to xm create to skip DTD checks. signed-off-by: Tom Wilkie --- tools/python/xen/xm/create.py | 11 +++++++++-- tools/python/xen/xm/xenapi_create.py | 11 ++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py index c3fe568fd4..c11189a59d 100644 --- a/tools/python/xen/xm/create.py +++ b/tools/python/xen/xm/create.py @@ -104,6 +104,11 @@ gopts.opt('xmldryrun', short='x', use="XML dry run - prints the resulting configuration in XML but " "does not create the domain.") +gopts.opt('skipdtd', short='s', + fn=set_true, default=0, + use="Skip DTD checking - skips checks on XML before creating. " + " Experimental. Can decreate create time." ) + gopts.opt('paused', short='p', fn=set_true, default=0, use='Leave the domain paused after it is created.') @@ -1279,9 +1284,11 @@ def main(argv): from xen.xm.xenapi_create import xenapi_create xenapi_create_inst = xenapi_create() if opts.is_xml: - vm_refs = xenapi_create_inst.create(filename = config) + vm_refs = xenapi_create_inst.create(filename = config, + skipdtd = opts.vals.skipdtd) else: - vm_refs = xenapi_create_inst.create(document = doc) + vm_refs = xenapi_create_inst.create(document = doc, + skipdtd = opts.vals.skipdtd) map(lambda vm_ref: server.xenapi.VM.start(vm_ref, 0), vm_refs) elif not opts.is_xml: diff --git a/tools/python/xen/xm/xenapi_create.py b/tools/python/xen/xm/xenapi_create.py index ebc3a75113..0d2ab7dffb 100644 --- a/tools/python/xen/xm/xenapi_create.py +++ b/tools/python/xen/xm/xenapi_create.py @@ -75,15 +75,20 @@ class xenapi_create: self.dtd = "/usr/lib/python/xen/xm/create.dtd" - def create(self, filename=None, document=None): + def create(self, filename=None, document=None, skipdtd=False): """ Create a domain from an XML file or DOM tree """ + if skipdtd: + print "Skipping DTD checks. Dangerous!" + if filename is not None: - self.check_dtd(filename) + if not skipdtd: + self.check_dtd(filename) document = parse(filename) elif document is not None: - self.check_dom_against_dtd(document) + if not skipdtd: + self.check_dom_against_dtd(document) self.check_doc(document) -- 2.30.2